package com.ctbu.score.service.impl;

import com.ctbu.score.service.StudentService;
import com.ctbu.score.domain.Student;
import com.ctbu.score.mapper.StudentMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 学生服务实现类
 **/
@Service
public class StudentServiceImpl implements StudentService {

    @Autowired
    private StudentMapper studentMapper;

    /**
     * 学生登录功能
     *
     * @param stuId   学生ID
     * @param stuPass 学生密码
     * @return 匹配的学生对象，如果不存在返回null
     */
    @Override
    public Student login(String stuId, String stuPass) {
        return studentMapper.selectStudentByIdAndPass(stuId, stuPass);
    }

    /**
     * 获取所有学生信息
     *
     * @return 包含所有学生信息的列表
     */
    @Override
    public List<Student> getAllStudent() {
        return studentMapper.selectAllStudent();
    }

    /**
     * 添加学生信息
     *
     * @param student 学生对象
     * @return 添加操作影响的行数
     */
    @Override
    public int addStudent(Student student) {
        return studentMapper.insertStudent(student);
    }

    /**
     * 根据学生ID查询学生信息
     *
     * @param stuId 学生ID
     * @return 对应学生ID的学生信息
     */
    @Override
    public Student selectById(String stuId) {
        return studentMapper.selectStudentByStuId(stuId);
    }

    /**
     * 根据学生ID删除学生信息
     *
     * @param stuId 学生ID
     * @return 删除操作影响的行数
     */
    @Override
    public int deleStu(String stuId) {
        return studentMapper.deleteStuById(stuId);
    }

    /**
     * 根据班级名称查询学生信息
     *
     * @param stuClass 班级名称
     * @return 对应班级名称的学生列表
     */
    @Override
    public List<Student> seleStuByClassName(String stuClass) {
        return studentMapper.selectStuByStuclass(stuClass);
    }

    /**
     * 添加带有密码的学生信息
     *
     * @param student 带有密码的学生对象
     * @return 添加操作影响的行数
     */
    @Override
    public int addStudentHavePass(Student student) {
        return studentMapper.insertStudentHavaPass(student);
    }
}

